package com.ruoyi.system.domain;

import java.util.Date;
import java.util.List;

import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 库存调拨对象 erp_stock_transfer
 *
 * @author ruoyi
 * @date 2025-03-07
 */
public class ErpStockTransfer extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 主键 */
    private Long id;

    /** 编号 */
    @Excel(name = "编号")
    private String sn;

    /** 调出方部门id */
    @Excel(name = "调出方部门id")
    private Long outDeptId;

    /** 调出方仓库id */
    @Excel(name = "调出方仓库id")
    private Long outWarehouseId;

    /** 调出方仓库经手人id */
    @Excel(name = "调出方仓库经手人id")
    private Long outHandledById;

    /** 调出方仓库经手人名称 */
    @Excel(name = "调出方仓库经手人名称")
    private String outHandledByName;

    /** 调入方部门id */
    @Excel(name = "调入方部门id")
    private Long inDeptId;

    /** 调入方仓库id */
    @Excel(name = "调入方仓库id")
    private Long inWarehouseId;

    /** 调入方仓库经手人id */
    @Excel(name = "调入方仓库经手人id")
    private Long inHandledById;

    /** 调入方仓库经手人名称 */
    @Excel(name = "调入方仓库经手人名称")
    private String inHandledByName;

    /** 调出部门名称 */
    @Excel(name = "调出部门名称")
    private String outDeptName;

    /** 调出仓库名称 */
    @Excel(name = "调出仓库名称")
    private String outWarehouseName;

    /** 调入部门名称 */
    @Excel(name = "调入部门名称")
    private String inDeptName;

    /** 调入仓库名称 */
    @Excel(name = "调入仓库名称")
    private String inWarehouseName;

    /** 附件 */
    @Excel(name = "附件")
    private String attachment;

    /** 状态 */
    @Excel(name = "状态")
    private String status;

    /** 调拨时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "调拨时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date transferTime;

    /** 创建者 */
    @Excel(name = "创建者")
    private String creator;

    /** 更新者 */
    @Excel(name = "更新者")
    private String updater;

    public void setId(Long id)
    {
        this.id = id;
    }

    public Long getId()
    {
        return id;
    }
    public void setSn(String sn)
    {
        this.sn = sn;
    }

    public String getSn()
    {
        return sn;
    }
    public void setOutDeptId(Long outDeptId)
    {
        this.outDeptId = outDeptId;
    }

    public Long getOutDeptId()
    {
        return outDeptId;
    }
    public void setOutWarehouseId(Long outWarehouseId)
    {
        this.outWarehouseId = outWarehouseId;
    }

    public Long getOutWarehouseId()
    {
        return outWarehouseId;
    }
    public void setOutHandledById(Long outHandledById)
    {
        this.outHandledById = outHandledById;
    }

    public Long getOutHandledById()
    {
        return outHandledById;
    }
    public void setOutHandledByName(String outHandledByName)
    {
        this.outHandledByName = outHandledByName;
    }

    public String getOutHandledByName()
    {
        return outHandledByName;
    }
    public void setInDeptId(Long inDeptId)
    {
        this.inDeptId = inDeptId;
    }

    public Long getInDeptId()
    {
        return inDeptId;
    }
    public void setInWarehouseId(Long inWarehouseId)
    {
        this.inWarehouseId = inWarehouseId;
    }

    public Long getInWarehouseId()
    {
        return inWarehouseId;
    }
    public void setInHandledById(Long inHandledById)
    {
        this.inHandledById = inHandledById;
    }

    public Long getInHandledById()
    {
        return inHandledById;
    }
    public void setInHandledByName(String inHandledByName)
    {
        this.inHandledByName = inHandledByName;
    }

    public String getInHandledByName()
    {
        return inHandledByName;
    }
    public void setOutDeptName(String outDeptName)
    {
        this.outDeptName = outDeptName;
    }

    public String getOutDeptName()
    {
        return outDeptName;
    }
    public void setOutWarehouseName(String outWarehouseName)
    {
        this.outWarehouseName = outWarehouseName;
    }

    public String getOutWarehouseName()
    {
        return outWarehouseName;
    }
    public void setInDeptName(String inDeptName)
    {
        this.inDeptName = inDeptName;
    }

    public String getInDeptName()
    {
        return inDeptName;
    }
    public void setInWarehouseName(String inWarehouseName)
    {
        this.inWarehouseName = inWarehouseName;
    }

    public String getInWarehouseName()
    {
        return inWarehouseName;
    }
    public void setAttachment(String attachment)
    {
        this.attachment = attachment;
    }

    public String getAttachment()
    {
        return attachment;
    }
    public void setStatus(String status)
    {
        this.status = status;
    }

    public String getStatus()
    {
        return status;
    }
    public void setTransferTime(Date transferTime)
    {
        this.transferTime = transferTime;
    }

    public Date getTransferTime()
    {
        return transferTime;
    }
    public void setCreator(String creator)
    {
        this.creator = creator;
    }

    public String getCreator()
    {
        return creator;
    }
    public void setUpdater(String updater)
    {
        this.updater = updater;
    }

    public String getUpdater()
    {
        return updater;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("id", getId())
            .append("sn", getSn())
            .append("outDeptId", getOutDeptId())
            .append("outWarehouseId", getOutWarehouseId())
            .append("outHandledById", getOutHandledById())
            .append("outHandledByName", getOutHandledByName())
            .append("inDeptId", getInDeptId())
            .append("inWarehouseId", getInWarehouseId())
            .append("inHandledById", getInHandledById())
            .append("inHandledByName", getInHandledByName())
            .append("outDeptName", getOutDeptName())
            .append("outWarehouseName", getOutWarehouseName())
            .append("inDeptName", getInDeptName())
            .append("inWarehouseName", getInWarehouseName())
            .append("attachment", getAttachment())
            .append("status", getStatus())
            .append("transferTime", getTransferTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("creator", getCreator())
            .append("updater", getUpdater())
            .toString();
    }

    /** 商品明细列表 */
    private List<ErpStockTransferProduct> productList;

    public List<ErpStockTransferProduct> getProductList() {
        return productList;
    }

    public void setProductList(List<ErpStockTransferProduct> productList) {
        this.productList = productList;
    }
}
